package com.greentreecs.fms.util;

import org.springframework.beans.BeanUtils;

import java.util.LinkedList;
import java.util.List;
import java.util.function.Supplier;

/**
 * @author 刀氏春秋
 * @date 2023/12/19
 */
public class CopyUtil<S, T> {
    /**
     * 浅拷贝对象列表
     *
     * @param source 数据源
     * @param target 目标
     * @return 拷贝结果
     */
    public List<T> copyListProperties(List<S> source, Supplier<T> target) {
        List<T> copiedTarget = new LinkedList<>();
        // 执行循环，通过supplier的get方法来新建对象
        source.forEach(srcObj -> {
            T tarObj = target.get();
            BeanUtils.copyProperties(srcObj, tarObj);
            copiedTarget.add(tarObj);
        });
        return copiedTarget;
    }
}
